import { request } from '../utls/require'

// 用户信息接口
export interface UserInfo {
  id: number
  username: string
  email: string
  first_name?: string
  last_name?: string
  is_staff: boolean
  is_superuser: boolean
  date_joined?: string
  last_login?: string | null
}

// 登录请求参数
export interface LoginParams {
  username: string
  password: string
}

// 注册请求参数
export interface RegisterParams {
  username: string
  password: string
  email?: string
}

// 修改密码请求参数
export interface ChangePasswordParams {
  old_password: string
  new_password: string
}

/**
 * 用户认证API
 */
export const authApi = {
  /**
   * 用户登录
   * @param data 登录参数
   */
  login(data: LoginParams) {
    return request.post<UserInfo>('/zhahuo/auth/login', data)
  },

  /**
   * 用户登出
   */
  logout() {
    return request.post('/zhahuo/auth/logout')
  },

  /**
   * 获取当前用户信息
   */
  getUserInfo() {
    return request.get<UserInfo>('/zhahuo/auth/info')
  },

  /**
   * 用户注册
   * @param data 注册参数
   */
  register(data: RegisterParams) {
    return request.post<UserInfo>('/zhahuo/auth/register', data)
  },

  /**
   * 修改密码
   * @param data 修改密码参数
   */
  changePassword(data: ChangePasswordParams) {
    return request.post('/zhahuo/auth/change-password', data)
  }
}

export default authApi